package com.example.myblog.mapper;

import com.example.myblog.domain.Article;
import com.example.myblog.domain.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @Author: Wu YunXia
 * @Description: 用户
 * @Date: Created in 10:15 2020/11/26
 * @Modefied By:
 */
@Mapper
public interface UserMapper {

    /**
     * 编辑辨识
     */
    @Mapper
    User queryIdByUuid(String uuid);

    /**
     * 添加
     */
    @Mapper
    int addUser(User user);

    /**
     * 更新
     */
    @Mapper
    int updateUser(User user);

    /**
     * 获取全部
     */
    @Mapper
    List<User> getUserAll();

    /**
     * 获取全部
     */
    @Mapper
    int delUser(int id);

    /**
     * 获取单个
     */
    @Mapper
    User selectById(int id);

    /**
    * @desc: 注册
    */
    @Mapper
    int register(User user);


    /**
    * @desc: 登录  用户名需唯一
    */
    @Mapper
    List<User> login(String username);


    /**
    * @desc: 改变state (激活状态)  激活邮件
    */
    @Mapper
    int activeEmail(String uuid);


    /**
    * @desc: 查询-id
    */
    @Mapper
    List<User> queryId(int id);


    /**
    * @desc: 查询-邮箱
    */
    @Mapper
    List<User> queryForEmail(String email);


    /**
    * @desc: 查询-用户名
    */
    @Mapper
    List<User> queryForUsername(String username);


    /**
     * @desc: 查询-uuid
     */
    @Mapper
    List<User> queryForUuid(String psUuid);


    /**
     * @Date 2020/11/29
     * @desc: 重置密码
     */
    @Mapper
    int resetPass(@Param("email") String email, @Param("random") String random, @Param("uuid") String uuid);


    /**
    * @Date 10:37 2020/11/30
    * @desc: 修改密码
    */
    @Mapper
    int updatePass(@Param("id") int id, @Param("password") String password, @Param("uuid") String uuid);



    @Mapper
    List<User> queryAll();
}
